Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Лабораторна робота 5

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКНІ
Факультет:
Комп’ютерні науки
Кафедра:
АСУ

Інформація про роботу

Рік:
2024
Тип роботи:
Лабораторна робота
Предмет:
Програмно-орієнтовані мови програмування
Варіант:
5

Частина тексту файла

/ pl.h: #pragma once int check(char **check); double polinom(char *tup,...); main.c #include<stdio.h> #include<conio.h> #include"pl.h" #define n 5 int main(){//головна функція int i; int a; double res,arr[n]; scanf("%d", &a); for(i=0;i<n;i++) scanf("%lf", arr+i); res=polinom("%d %lf %lf %lf %lf %lf", a, arr[0], arr[1], arr[2], arr[3], arr[4]); printf("%lf\n", res); res=polinom("%lf %lf %lf %lf", (double)a, arr[0], arr[1], arr[2]); printf("%lf\n", res); res=polinom("%d %lf %lf %lf", a, arr[0], arr[1], arr[2]); printf("%lf\n", res); getch(); return 0; } //можеш переписувати і викликати функцію в будь-якому порядку з будь-якою кількісттю вхідних данних(на вхід в рядку правда треба описувати якого типу данні типодаєш, кожну змінну описувати,як той самий прінтф чи сканф), функція повинна сприймати double, int i float, але в меневоно вийо, тому хз... pl.c: #pragma once #include "pl.h" #include<stdarg.h>//хрєнь, де лежать функції для роботи зі змінною кількісттю параметрів double polinom(char *tup,...){//функція з якою я найдовше займався сексом(твоє завдання) double res,x;//змінні під результат і х int ch;//зміння для перевірки int arg0;//змінні потипно для цілого, з рухомою комою, і з рухомою комою подвоєної точності float arg1; double arg2; va_list ap;//змінна для роботи va_start(ap, tup);//це треба щоб зловити першу змінну з поданих res=0; ch=check(&tup);//виклик перевірки if(ch==0)//в залежності від того, що перевірка видасть або виходимо за межі функції, або ж використовуємо потрібну змінну для того щоб вивести х return 0; if(ch==1){ arg0=va_arg(ap,int); x=arg0; } if(ch==2){ arg1=va_arg(ap,float); x=arg1; } if(ch==3){ arg2=va_arg(ap,double); x=arg2; } while(1){//безмежний цикл, все аналогічно до попереднього "витягування х" але тут витягуються потрібні шматки поліному ch=check(&tup); if(ch==0) break; if(ch==1){ arg0=va_arg(ap,int); res=res*x+arg0; } if(ch==2){ arg1=va_arg(ap,float); res=res*x+arg1; } if(ch==3){ arg2=va_arg(ap,double); res=res*x+arg2; } } va_end(ap);//звільняється змінна АР return res;//повертається результат } int check(char **check){//функція перевірки вхідних данних(ця хуйня для того, щобвоно парахо під тип функції scanf while(1){//в цьому безмежному циклі воно перебирає шукаючи символ % if(check[0][0]==0)//якщо попало на кінець рядка - повернути нуль return 0; if(check[0][0]=='%')//знайшло відсоток - на вихід break; else check[0]=&check[0][1]; } if(check[0][0]=='%' && check[0][1]=='d'){//що описано то і повертає(для інт 1, для флоат 2, для дабл 3) check[0]=&check[0][2]; return 1; } if(check[0][0]=='%' && check[0][1]=='f'){ check[0]=&check[0][2]; return 2; } if(check[0][0]=='%' && check[0][1]=='l' && check[0][2]=='f'){ check[0]=&check[0][3]; return 3; } return 0; }
Антиботан аватар за замовчуванням

24.04.2014 23:04

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини